module signex(
		input[7:0] inImm,
		input[2:0] sizeImm,
		input[2:0] alignImm,
		output[15:0] outImm
		);
		
	reg[15:0] outImm;

	always @ (*)
	begin
		case(sizeImm)
			3'b001: outImm = {{11{inImm[4]}}, inImm[4:0]};
			3'b010:
			begin
				// Aquí depèn de l'alineació a memòria
				case(alignImm)
					3'b001: outImm = {{10{inImm[5]}}, inImm[5:0]};
					3'b010: outImm = {{9{inImm[5]}}, inImm[5:0], 1'b0};
					3'b100: outImm = {{8{inImm[5]}}, inImm[5:0], 2'b00};
					default : $display("Error in SEL");
				endcase
			end
			3'b100: outImm = {{8{inImm[7]}}, inImm[7:0]};
			default : $display("Error in SEL");
		endcase
	end

endmodule

